I. Field of the Invention
The present invention is directed generally to mobile telephone systems. More particularly, the present invention relates to systems and methods that permit a mobile telephone user to roam outside of the user""s home service area. Still more particularly, the present invention relates to systems and methods for storing and quickly accessing records in a Preferred Roaming List (PRL) from memory in a mobile telephone.
II. Description of the Related Art
In typical mobile telephone systems, when a mobile telephone user moves outside the user""s home area (also known as roaming), the user""s telephone is often switched from the home system to an alternate system provider so that service can continue for the user. In order to switch the user to an alternate system provider, the mobile telephone will typically access system records in the PRL stored in the memory of the mobile phone. Based on the system records stored in the PRL, the mobile phone will typically select an alternative system service provider that will be used to continue service for the user and, based on this selection and the associated information stored in the PRL system records, the mobile phone will automatically access the selected service provider on behalf of the user.
The Telephone Industry Association/Electronics Industry Association (also known as TIA/EIA) has recently published a new standard that describes a data format to be used for system table records in a PRL. See Interim Standard entitled xe2x80x9cOver-The-Air Service Programming Of Mobile Stations in Spread Spectrum Systemsxe2x80x9d, (hereinafter xe2x80x9cthe IS-683-A Standardxe2x80x9d), the contents of which is hereby incorporated by reference in its entirety. The IS-683-A Standard provides that each system record in the PRL will have the following eight fields:
1. SID field: a 15 bit field that includes a numerical value that is the System Identification number of the system associated with the system record;
2. NID_INCL field: a 2 bit field, the least significant bit of this field indicates whether there is a Network Identification (NID) number associated with the system record and stored in the NID field described below; the most significant bit of this record is used to specify an assumed value for the NID if no value is stored in the NID field described below; the value 11 is a reserved value;
3. NID field a 16 bit field that contains a numerical value that is the Network Identification number of the system associated with the system record;
4. PREF_NEG field: a 1 bit field indicating whether the system associated with the system record is a preferred system or a negative system.
5. GEO field: a 1 bit field that indicates whether the system associated with the system record is within the geographic region of the previous system record in the PRL (if GEO=1) or, alternatively, whether the system is in a new geographic region (if GEO=0);
6. PRI field: a 1 bit field that indicates whether the current system record has a higher priority than that of the next system record in the PRL. This field is omitted from the system record if the PREF_NEG field indicates that the system associated with system record is a negative system;
7. ACQ_INDEX field: a 9 bit field that contains an index to the acquisition parameters required for the mobile phone to access the system associated with the system record;
8. ROAM_IND field: an 8 bit field that indicates the roaming status of the associated system record; this field is omitted from the system record if the PREF_NEG field indicates that the system associated with system record is a negative system.
In current mobile telephones, the PRL is stored in the mobile phone""s non-volatile memory and, during system initialization, the entire PRL is moved and stored in the unit""s RAM in a single bit-packed array for later access during a System Selection and Preferred Roaming operation. One purpose of using the bit-packed form is to save memory space. Unfortunately, since each record in the PRL is variably-sized (this occurs because, as described above, some or all of the NID, PRI and ROAM_IND fields can be omitted from a given system record), the starting position in RAM of each system record in the PRL is uncertain. This uncertainty makes accessing a given system record difficult and time-consuming in current systems. More particularly, as a result of the uncertainty of the starting position in RAM of each system record in the PRL, current record accessing software must sequentially step through each system record in the System Table stored in RAM starting with the first record in the table in order to access a record that is located somewhere within the table. One other deficiency of current record accessing systems is that they do not permit the xe2x80x9cbacktrackingxe2x80x9d of records within the PRL stored in RAM. For example, if the system previously accessed the 164th record in the PRL stored in RAM and, thereafter, the system wished to access the 161st record, the accessing software would be unable to simply go back three records in the table and would instead be forced to again sequentially step through each system record in the System Table stored in RAM starting with the first record in the table in order to access the 161st record.
These problems and deficiencies are recognized and solved by the present invention in the manner described below.
The present invention uses a novel partitioned memory format for storing the PRL in RAM which facilitates that rapid storing and accessing of system records from the PRL. The partitioned memory format uses five separate arrays to store the various fields of the system records in the PRL. By applying an index value to these arrays, accessing software can rapidly access one or more fields of a particular system record in the PRL without having to sequentially step through all fields in each system record starting with the first record until the desired record is reached. This aspect of the invention not only allows the mobile phone to access all fields of a given system record rapidly but, in situations where the mobile phone wishes to access only a single field in a system record (e.g., the SID field), the present invention permits for the rapid accessing of this information in a manner which does not require the sequential accessing of other information in the PRL. In addition, the accessing system of the present invention allows for the backtracking of records in the PRL, which is not possible with the current systems as described above.
The invention also uses a novel system for reading the PRL from non-volatile memory and storing the PRL in RAM during system initialization. This novel system substantially requires no additional accesses to the non-volatile memory that are necessary to move the PRL from the non-volatile memory to RAM by organizing the system records xe2x80x9cin placexe2x80x9d in RAM after they have initially been moved from the non-volatile memory to RAM. Since accesses to non-volatile memory are slow, this aspect of the invention functions to minimize the time required during system initialization to re-arrange the PRL in the RAM and store the data in the partitioned format.
In accordance with one particular aspect, the present invention is directed to a method and apparatus for storing and accessing a preferred roaming list formed of variable size system records each of which includes a system identification field, a network identification included field, a preferred_negative field, a geographical region indicator field, and an acquisition parameter information field. Each of the system records optionally includes a network identification field, a priority field, and a roaming indicator field. The network identification, priority and roaming indicator fields from the records are stored in a first array; the system identification and geographical region indicator fields are stored in a second array; the first bit of the network identification included and the preferred_negative fields are stored in a third array; the second bit of the network identification included fields from the records are stored in a fourth array; and the acquisition parameter information fields are stored in a fifth array. A first index value corresponding to a selected record to be accessed is received, and entries in the third array are evaluated in response to the first index value in order to access the first bit of the network identification included field and the preferred_negative field associated with the selected record and to determine a second index value for locating any network identification, priority or roaming indicator field associated with the selected record in the first array. Any network identification, priority or roaming indicator fields associated with the selected record are then accessed in the first array using the second index value, and the system identification field and the geographical region indicator field associated with the selected record are accessed from the second array using the first index value. Other fields associated with the selected record are also accessed from the remaining arrays using the first index value.
In accordance with a further aspect, the present invention is directed to a method and apparatus for quickly retrieving system identification field information from a preferred roaming list. In this embodiment, the variable sized system records are stored in memory using the five arrays described in the paragraph above. However, in this further embodiment, a first index value corresponding to a selected one of the plurality of system records to be accessed is received and, in response to the first index value, the system identification field associated with the selected system record and stored in the second array is quickly accessed.